package cn.zyq.demo.beans.wx;

import cn.zyq.demo.system.common.BaseBean;
import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.persistence.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;


/**
 * 微信支付调用流水
 * 2023-04-24 13:19:51
 */
@Entity
@Table(name ="`wxPayLog`")
@Data
public class WxPayLog extends BaseBean implements Serializable {

	private static final long serialVersionUID = 9048274786515622712L;

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY, generator = "JDBC")
	@Column(name = "`wxPayLogID`")
	@ApiModelProperty("null")
	private Integer wxPayLogID;

	/**
	 * 用户表的用户ID
	 */
	@Column(name = "`userID`")
	@ApiModelProperty("用户表的用户ID")
	private Integer userID;

	/**
	 * 操作流水
	 */
	@Column(name = "`traceSn`")
	@ApiModelProperty("操作流水")
	private String traceSn;

	/**
	 * 微信支付模块类型 1 充值， 2 活动投票， 3 活动礼物
	 */
	@Column(name = "`moduleType`")
	@ApiModelProperty("微信支付模块类型 1 充值， 2 活动投票， 3 活动礼物")
	private Integer moduleType;

	/**
	 * 支付模块名称
	 */
	@Column(name = "`moduleName`")
	@ApiModelProperty("支付模块名称")
	private String moduleName;

	/**
	 * 金额(元)
	 */
	@Column(name = "`amountYuan`")
	@ApiModelProperty("金额(元)")
	private BigDecimal amountYuan;

	/**
	 * 金额(分)
	 */
	@Column(name = "`amount`")
	@ApiModelProperty("金额(分)")
	private Integer amount;

	/**
	 * 商户编号
	 */
	@Column(name = "`mchid`")
	@ApiModelProperty("商户编号")
	private String mchid;

	/**
	 * 应用ID
	 */
	@Column(name = "`appid`")
	@ApiModelProperty("应用ID")
	private String appid;

	/**
	 * 微信登录openid
	 */
	@Column(name = "`openid`")
	@ApiModelProperty("微信登录openid")
	private String openid;

	/**
	 * 交易标识
	 */
	@Column(name = "`checkName`")
	@ApiModelProperty("交易标识")
	private String checkName;

	/**
	 * 交易说明
	 */
	@Column(name = "`description`")
	@ApiModelProperty("交易说明")
	private String description;

	/**
	 * 创建订单ip
	 */
	@Column(name = "`spbillCreateIp`")
	@ApiModelProperty("创建订单ip")
	private String spbillCreateIp;

	/**
	 * 请求状态码
	 */
	@Column(name = "`returnCode`")
	@ApiModelProperty("请求状态码")
	private String returnCode;

	/**
	 * 请求状态说明
	 */
	@Column(name = "`returnMsg`")
	@ApiModelProperty("请求状态说明")
	private String returnMsg;

	/**
	 * 请求结果状态码
	 */
	@Column(name = "`resultCode`")
	@ApiModelProperty("请求结果状态码")
	private String resultCode;

	/**
	 * 错误状态码
	 */
	@Column(name = "`errCode`")
	@ApiModelProperty("错误状态码")
	private String errCode;

	/**
	 * 错误信息说明
	 */
	@Column(name = "`errCodeDes`")
	@ApiModelProperty("错误信息说明")
	private String errCodeDes;

	/**
	 * 事件关联id
	 */
	@Column(name = "`eventId`")
	@ApiModelProperty("事件关联id")
	private Integer eventId;

	/**
	 * 支付请求响应信息
	 */
	@Column(name = "`payReqRespInfo`")
	@ApiModelProperty("支付请求响应信息")
	private String payReqRespInfo;

	/**
	 * 异步通知地址
	 */
	@Column(name = "`notifyUrl`")
	@ApiModelProperty("异步通知地址")
	private String notifyUrl;

	/**
	 * 通知商户支付结果的回调状态
	 */
	@Column(name = "`notifyStatus`")
	@ApiModelProperty("通知商户支付结果的回调状态")
	private String notifyStatus;

	/**
	 * 订单金额（原始金额）,单位：分
	 */
	@Column(name = "`orderAmount`")
	@ApiModelProperty("订单金额（原始金额）,单位：分")
	private Integer orderAmount;

	/**
	 * 回调订单金额，单位：分
	 */
	@Column(name = "`notifyAmount`")
	@ApiModelProperty("回调订单金额，单位：分")
	private Integer notifyAmount;

	/**
	 * 回调用户实际支付金额
	 */
	@Column(name = "`notifyPayerAmount`")
	@ApiModelProperty("回调用户实际支付金额")
	private Integer notifyPayerAmount;

	/**
	 * 订单支付成功时间
	 */
	@Column(name = "`successTime`")
	@ApiModelProperty("订单支付成功时间")
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	private LocalDateTime successTime;

	/**
	 * 支付成功的订单拓展单编号
	 */
	@Column(name = "`channelOrderNo`")
	@ApiModelProperty("支付成功的订单拓展单编号")
	private String channelOrderNo;

	/**
	 * 回调信息（第三方支付回调响应信息）
	 */
	@Column(name = "`notifyInfo`")
	@ApiModelProperty("回调信息（第三方支付回调响应信息）")
	private String notifyInfo;

}
